|
Расположение в меню |
---|
Архитектура → Пространство |
Верстаки |
Arch |
Быстрые клавиши |
S P |
Представлено в версии |
0.14 |
См. также |
Arch Wall/ru, Arch Structure/ru |
Инструмент Пространство позволяет определить пустое пространство, базируясь на твердой оболочке, или определив границы, или и тем, и другим. Если он базируется только на границах, объем вычисляется, исходя из ограничительного блока всех заданных границ, и вычитая пространство за каждой границей. Пространственный объект всегда определяет твердотельный объём. Площадь пола пустого пространства вычисляемая пересечением горизонтальной плоскости через центр масс пустого пространства, так же может показываться установкой режима показа пространственного объекта в "detailed".
На рисунке выше пространственный объект создан из существующего твердотельного объекта, затем две стены добавлены как границы, и режим показа установлен в "detailed" для показа занимаемой площади.
Смотрите так же: Основы составления скриптов в FreeCAD.
Инструмент Пространства можно использовать в сценариях python и макросы, используя следующую функцию:
Space = makeSpace(objects=None, baseobj=None, name="Space")
Space
object from the given objects
or baseobj
, which can be
FreeCADGui.Selection.getSelectionEx()
, or(object, subobjectname)
Пример:
import FreeCAD, Arch
Box = FreeCAD.ActiveDocument.addObject("Part::Box", "Box")
Box.Length = 1000
Box.Width = 1000
Box.Height = 1000
Space = Arch.makeSpace(Box)
Space.ViewObject.LineWidth = 2
FreeCAD.ActiveDocument.recompute()
After a space object is created, selected faces can be added to it with the following code:
import FreeCAD, FreeCADGui, Draft, Arch
points = [FreeCAD.Vector(-500, 0, 0), FreeCAD.Vector(1000, 1000, 0)]
Line = Draft.makeWire(points)
Wall = Arch.makeWall(Line, width=150, height=2000)
FreeCAD.ActiveDocument.recompute()
# Select a face of the wall
selection = FreeCADGui.Selection.getSelectionEx()
Arch.addSpaceBoundaries(Space, selection)
Boundaries can also be removed, again by selecting the indicated faces:
selection = FreeCADGui.Selection.getSelectionEx()
Arch.removeSpaceBoundaries(Space, selection)